var Binder =
{
	DefaultCssBinder : function(cssAtr)
	{
		var f = function(cssAtr)
		{
			var attribute = cssAtr;

			this.SetValue = function(ele, value)
			{
				ele.style[attribute] = value;
			};

			this.GetValue = function(ele)
			{
				return ele.style[attribute];
			};
		};

		return new f(cssAtr);
	},

	DefaultHtmlBinder : function(htmlAtr)
	{
		var f = function(cssAtr)
		{
			var attribute = cssAtr;

			this.SetValue = function(ele, value)
			{
				ele[attribute] = value;
			};

			this.GetValue = function(ele)
			{
				return ele[attribute];
			};
		};

		return new f(htmlAtr);
	},

	SizeBinder :
	{
		SetValue : function(ele, value)
		{
			ele.style.width = value.Width;
			ele.style.height = value.Height;
		},

		GetValue : function(ele)
		{
			var value = new Size();
			value.Width = ele.style.width;
			value.Height = ele.style.height;

			return value;
		}
	},

	PositionBinder : 
	{
		SetValue : function(ele, value)
		{
			ele.style.left = value.X;
			ele.style.top = value.Y;
		},

		GetValue : function(ele)
		{
			var value = new Coord();
			value.X = parseInt(ele.style.left, 10);
			value.Y = parseInt(ele.style.top, 10);

			return value;
		}
	},

	BorderBinder : 
	{
		SetValue : function(ele, value)
		{
			ele.style.borderStyle = value.Style;
			ele.style.borderColor = value.Color;
			ele.style.borderWidth = value.Width;
		},

		GetValue : function(ele)
		{
			var value = new Border();
			value.Style = ele.style.borderStyle;
			value.Color = ele.style.borderColor;
			value.Width = ele.style.borderWidth;

			return value;
		}
	},

	FontBinder :
	{
		SetValue : function(ele, value)
		{
			ele.style.fontFamily = value.Family;
			ele.style.fontSize = value.Size;
			ele.style.color = value.Color;
			ele.style.textAlign = value.Alignment;
			ele.style.fontStyle = value.Style;
			ele.style.fontWeight = value.Weight;
		},

		GetValue : function(ele)
		{
			var value = new Font();
			value.Family = ele.style.fontFamily;
			value.Size = ele.style.fontSize;
			value.Color = ele.style.color;
			value.Alignment = ele.style.textAlign;
			value.Style = ele.style.fontStyle;
			value.Weight = ele.style.fontWeight;

			return value;
		}
	},

	VideoSourceBinder :
	{
		SetValue : function(ele, value)
		{

			ele.src = value.Source;
			ele.type = value.MimeType;
		},

		GetValue : function(ele)
		{
			var value = new VideoSource();
			value.Source = ele.src;
			value.MimeType = ele.type;

			return value;
		}
	}
};